package com.itheima.d2_thread_api;

/*
    多线程的创建方式二：实现Runnable接口

    实现步骤
        1 定义一个线程任务类MyRunnable实现Runnable接口，重写run()方法
        2 创建MyRunnable任务对象
        3 把MyRunnable任务对象交给Thread处理。
        4 调用线程对象的start()方法启动线程

    方式二的优缺点
        优点：任务类只是实现接口，可以继续继承其他类、实现其他接口，扩展性强。
        缺点：需要多一个Runnable对象。
 */
public class ThreadDemo2 {
    public static void main(String[] args) throws InterruptedException {
        MyRunnable myRunnable = new MyRunnable();
        Thread t1 = new Thread(myRunnable,"222");
        t1.setName("333");

        Thread t2 = new Thread(() -> {
            System.out.println(Thread.currentThread().getName() + " 444");
        }, "555");

        t1.start();
        t1.join();
        t2.start();
    }
}

class MyRunnable implements Runnable {
    @Override
    public void run() {
        for (int i = 10; i >= 0; i--) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            System.out.println(Thread.currentThread().getName() + " " + i);
        }
    }
}



